class Solution {
public:
    int waysToStep(int n) {
            const int MOD = 1e9 + 7;
 
            if(n <= 2) // 处理边界
                return n;
 
            vector<int> dp(n+1, 1);
            dp[2] = 2;
            dp[3] = 4;
            for(int i = 4; i <= n; ++i)
            {
                dp[i] = ((dp[i-1] + dp[i-2]) % MOD + dp[i-3]) % MOD;
            }
            return dp[n];
    }
};